package com.tedu.oop.day8.inter2;

/**
 * 本类用于改造老师设计案例，采用面向接口编程
 */
public class Test_DesignInter {
    public static void main(String[] args) {
        //实现类自己实例化
        CGBTeacher2 ct=new CGBTeacher2();
        ct.ready();
        ct.teach();
    }

}

//定义接口  抽取共性形成抽象层---体现接口
interface Teacher2{
    //接口中的方法都是抽象方法 可省略public abstract
    //1.备课方法
    void ready();
    //2.上课方法
    void teach();

}
//创建接口的实现类，并添加所有未实现的方法
class CGBTeacher2 implements Teacher2{

    @Override
    public void ready() {
        System.out.println("正在备课...");
    }

    @Override
    public void teach() {
        System.out.println("正在上课...");
    }
}
//创建接口的抽象子类，(实现什么具体还不知道)
abstract class SCDTeacher implements Teacher2{

}

/**
 * 部分方法实现
 * 部分未实现---变为抽象方法，类变为抽象类
 * 缺点:自己不能实现new
 */
abstract class ACTTeacher implements Teacher2{

    @Override
    public void ready() {
        System.out.println("正在备课，基础加强");
    }
    //抽象方法 需要在子类中重写
    public abstract void teach();
}


